Methods, systems, and computer-readable mediums for configuring electronic messaging applications

ABSTRACT

Methods, systems, and computer-readable mediums configure electronic messaging applications to communicate with a server storing messages to and/or from an electronic messaging account of a user. A method involves receiving an electronic message address and a password of the user as inputs, deriving server connection settings based on the electronic message address, and applying the server connection settings to the electronic messaging account. Another method involves receiving an electronic message address of the user and discovering the server connection settings for the electronic messaging account on a server having a designated protocol name as a server prefix name to assist in locating the server and having the server connection settings. The method also involves retrieving the server connection settings from a file provided by the server in response to locating the server having the designated name and applying the server connection settings to the electronic messaging account.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims benefit to U.S. Pat.No. 9,712,479, entitled “Methods, Systems, and Computer-Readable Mediumsfor Configuring Electronic Messaging Applications,” filed Oct. 24, 2014,which application is a continuation of U.S. Pat. No. 8,898,308, entitled“Methods, Systems, and Computer-Readable Mediums for ConfiguringElectronic Messaging Applications,” filed Mar. 7, 2005, the disclosuresof which are hereby incorporated by reference in their entireties.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor patent disclosure as it appears in the U.S. Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

TECHNICAL FIELD

The present invention generally relates to configuring electronicmessaging applications, and more particularly, is related to methods,systems and computer-readable mediums for automatically configuringelectronic mail (email) application accounts with server configurationsettings necessary to send and receive email.

BACKGROUND

Users of electronic messaging applications, such as email applications,are at one time or another are prompted by a computer to providecommunication port and protocol settings with which the users are notfamiliar. The typical email user only remembers his or her e-mailaddress and often believes that entering an e-mail address in thecomputer should be sufficient for the entire configuration to takeplace. Further, one of the top customer support costs for some emailsoftware manufacturers is configuring email applications to connect to aserver, with which the user has an account, and download e-mails. Peoplegenerally do not understand how to find configuration settings for theirserver. Nor do people understand how to tell email applications, such asOUTLOOK from MICROSOFT CORPORATION of Redmond, Wash., their serversettings.

Previous systems have attempted to address the industry need by shippinga small database of, for example, the top 10 ISPs server connectionsettings. However, these previous approaches are lacking in that theyprovide static data without a mechanism to dynamically update the serverconfiguration settings. Thus, if a user has an old version of theproduct and the ISP has changed their server connection settings, thedatabase will provide the wrong settings.

Accordingly there is an unaddressed need in the industry to address theaforementioned deficiencies and inadequacies.

SUMMARY

Embodiments of the present invention provide methods, systems, andcomputer-readable mediums for configuring electronic messagingapplication accounts with server configuration or connection settingsnecessary to send and receive electronic messages. Some embodimentsdetermine server names and configuration settings necessary to send andreceive e-mail by deriving the server connection settings based on ane-mail address provided by a user. Other embodiments retrieve the serverconnection settings from a markup language file provided by an ISP orbuilt by a custom mail server. Algorithms and associated technology thatintelligently derive or guess the server connection settings arereferred to herein as Guessmart elements and algorithms and associatedtechnology that retrieve the server connection settings are referred toherein as AutoDiscovery (AD) elements. An aspect of the inventionrelates to the user experience of typing in an e-mail address and havingthe email application automatically configure server connection settingsbased on the email address.

One embodiment is a method for configuring an electronic messageapplication to communicate with a server storing messages at least oneof to and from an electronic message account of a user. The methodinvolves receiving an electronic message address and a password of theuser as inputs, deriving server connection settings based on theelectronic message address, and applying the server connection settingsto the electronic message account.

Another embodiment is a computer program product including acomputer-readable medium having control logic stored therein for causinga computer to configure an electronic message application to send andreceive electronic messages for an electronic message account. Thecontrol logic includes computer-readable program code for causing thecomputer to receive an electronic message address and a password of auser, derive server connection settings based on a domain name of theelectronic message address, and apply the server connection settings tothe electronic message account.

Still another embodiment is a computer-implemented system forconfiguring an email application to send and receive emails utilizingserver connection settings for an email account of a user. The systemincludes a client computer operative to receive an electronic messageaddress and a password of the user, derive the server connectionsettings from the email address received, and apply the serverconnection settings to the email account.

Another embodiment is a method for configuring an electronic messageapplication to communicate with a server storing messages to and/or froman electronic message account of a user. The method involves receivingan electronic message address of the user and discovering actual serverconnection settings for the electronic message account on a serverhaving a designated protocol name as a server prefix name to assist inlocating the server and having the server connection settings. Themethod also involves retrieving the server connection settings from afile provided by the server in response to locating the server havingthe designated name and applying the server connection settings to theelectronic message account.

Still another embodiment is a computer-readable medium having computerexecutable components. The computer executable components include afirst component that is arranged to indicate that a retrieved XMLpayload comprises a response to a request for server connection settingsthat support an account associated with an application program, therequest being initiated from the application program executing on aclient computer to a server having a designated service to provide anXML payload to assist the client computer in locating the server. Thecomputer executable components also include a second component arrangedto specify a type of the account, a third component arranged to indicatewhether the retrieved XML payload contains the server connectionsettings, whether the request will be redirected to another server forthe server connection settings, or whether an email address used by theapplication program to request the server connection settings should bechanged.

Still further, the computer executable components include a fourthcomponent arranged to enclose specifications for the server connectionsettings when the third component is arranged to indicate that theretrieved XML payload contains the server connection settings, a fifthcomponent arranged to specify a kind of mail account being configuredfor the type of the account, and a sixth component arranged to specify aname of a mail server corresponding to the kind of mail account beingconfigured.

The invention may be implemented utilizing a computer process, acomputing system, or as an article of manufacture such as a computerprogram product or computer-readable media. The computer program productmay be a computer storage media readable by a computer system andencoding a computer program of instructions for executing a computerprocess. The computer program product may also be a propagated signal ona carrier readable by a computing system and encoding a computer programof instructions for executing a computer process.

These and various other features, as well as advantages, whichcharacterize the present invention, will be apparent from a reading ofthe following detailed description and a review of the associateddrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating client computing apparatuses,servers, and a network architecture that provide an illustrativeoperating environment for illustrative embodiments of the presentinvention;

FIG. 2 is a computing system architecture illustrating a clientcomputing apparatus utilized in and provided by various illustrativeembodiments of the invention;

FIG. 3 is a computer screen display illustrating a user interfacedisplaying a welcome screen for an electronic messaging applicationstartup wizard for guiding a user through a configuration processaccording to an illustrative embodiment of the present invention;

FIG. 4 is a computer screen display illustrating a user interfacedisplaying a data entry screen for adding a new email account to anelectronic messaging application according to an illustrative embodimentof the present invention;

FIG. 5 is a computer screen display illustrating a user interfacedisplaying the data entry screen of FIG. 4 after receiving the dataaccording to an illustrative embodiment of the present invention;

FIG. 6 shows computer screen displays illustrating user interfacesdisplaying the progress of the configuration process during an onlinesearch for server connection settings and a corresponding error screendisplay when a network connection is unavailable according to anillustrative embodiment of the present invention;

FIG. 7 shows computer screen displays illustrating user interfacesdisplaying the progress of the configuration process during the onlinesearch for server connection settings and a corresponding error screendisplay when there is a problem connecting to a server according to anillustrative embodiment of the present invention;

FIG. 8 shows computer screen displays illustrating user interfacesdisplaying the progress of the configuration process during the onlinesearch for server connection settings and a corresponding error screendisplay when there is a problem logging on to a server utilizing apassword according to an illustrative embodiment of the presentinvention;

FIG. 9 shows computer screen displays illustrating user interfacesdisplaying the progress of the configuration process during the onlinesearch for server connection settings and a corresponding error screendisplay when there is a problem sending a test email to an email serveraccording to an illustrative embodiment of the present invention;

FIG. 10 is a computer screen display illustrating a user interfacedisplaying a successful configuration for an email account according toan illustrative embodiment of the present invention;

FIG. 11 is an operational flow diagram illustrating a routine performedin configuring electronic messaging applications according to anillustrative embodiment of the present invention;

FIG. 12 is an operational flow diagram illustrating a routine performedin deriving server connection settings according to an illustrativeembodiment of the present invention; and

FIG. 13 is an operational flow diagram illustrating a routine performedin discovering the server connection settings according to anillustrative embodiment of the present invention.

DETAILED DESCRIPTION

Referring now to the drawings, in which like numerals represent likeelements, various aspects of the present invention will be described. Inparticular, FIGS. 1-2 and the corresponding discussion are intended toprovide a brief, general description of a suitable computing environmentin which embodiments of the invention may be implemented. While theinvention will be described in the general context of program modulesthat execute in conjunction with program modules that run on anoperating system on a personal computer, those skilled in the art willrecognize that the invention may also be implemented in combination withother types of computer systems and program modules.

Generally, program modules include routines, programs, operations,components, data structures, and other types of structures that performparticular tasks or implement particular abstract data types. Moreover,those skilled in the art will appreciate that the invention may bepracticed with other computer system configurations, including hand-helddevices, multiprocessor systems, microprocessor-based or programmableconsumer electronics, minicomputers, mainframe computers, and the like.The invention may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

Referring now to FIG. 1, a block diagram showing client computingapparatuses, servers, and a network architecture that provide anillustrative operating environment 100 for illustrative embodiments ofthe present invention will be described. The operating environment 100includes computing apparatuses 102 a-102 n, where each computingapparatus executes a client electronic messaging application (EMA) 104,such as OUTLOOK from MICROSOFT CORPORATION. The operating environment100 also includes mail servers 108 a-108 n that adhere to a number ofInternet protocol standards and customized mail servers 107 a-107 n,such as a MICROSOFT EXCHANGE Server from MICROSOFT CORPORATION. Server107 a is a front-end server outside of a firewall 118 that interfaceswith a network 105, such as the Internet and the server 107 n is aback-end server that interfaces with a network 120, such as an intranetnetwork.

Each server 107 and 108 may respectively store messages, such asmessages 110 a-110 n that are sent to or received from the clientcomputing apparatuses 102 a-102 n. The servers 107 a-107 n may beAutoDiscovery elements each having an AutoDiscovery service 117 a and117 n respectively. The AutoDiscovery services 117 a-117 n, for examplein response to receiving a request from the EMA 104, are enabled torespectively build connection settings files 112 a and 112 n from dataretrieved from directories 114 a-114 n. The directories 114 a-114 ncontain the location of messages for each user/account holder with anemail address. Thus, the connection settings files 112 a-112 n providethe settings necessary for the EMAs 104 to send and receive messagesboth inside and outside of the firewall 118. The connection settingsfiles 112 a-112 n may be XML files.

An Internet Service Provider (ISP) server, for example the server 108 b,participating in AutoDiscovery may also provide a connection settingsfile 112 b for the EMA to retrieve up to date connection settings fromupon request. Additional details regarding deriving and retrievingserver connection settings will be described below with respect to FIGS.2-13.

Referring now to FIG. 2, a computing system architecture illustrating aclient computing apparatus 102 utilized in various illustrativeembodiments of the invention will be described. The computerarchitecture shown in FIG. 2 illustrates a computing apparatus 102, suchas a desktop, laptop, or handheld computing apparatus, including acentral processing unit 205 (“CPU”), a system memory 207, including arandom access memory 209 (“RAM”) and a read-only memory (“ROM”) 211, anda system bus 212 that couples the memory to the CPU 205. A basicinput/output system 213 (BIOS) containing the basic routines that helpto transfer information between elements within the computer, such asduring startup, is stored in the ROM 211. The computing apparatus 102further includes a mass storage device 214 for storing an operatingsystem 216, application programs, and other program modules, which willbe described in greater detail below.

The mass storage device 214 is connected to the CPU 205 through a massstorage controller (not shown) connected to the bus 212. The massstorage device 214 and its associated computer-readable media providenon-volatile storage for the computing apparatus 102. Although thedescription of computer-readable media contained herein refers to a massstorage device, such as a hard disk or CD-ROM drive, it should beappreciated by those skilled in the art that computer-readable media canbe any available media that can be accessed by the computing apparatus102.

By way of example, and not limitation, computer-readable media maycomprise computer storage media and communication media. Computerstorage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules or other data. Computer storage media includes, but isnot limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solidstate memory technology, CD-ROM, digital versatile disks (“DVJS’), orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed bythe computing apparatus 102.

According to various embodiments of the invention, the computingapparatus 102 may operate in a networked environment using logicalconnections to remote computers through networks 120 and 105, such asthe Internet or intranet. The computing apparatus 102 may connect to thenetworks 120 and 105 through a network interface unit 220 connected tothe bus 212. It should be appreciated that the network interface unit220 may also be utilized to connect to other types of networks andremote computer systems. The computing apparatus 102 may also include aninput/output controller 222 for receiving and processing input from anumber of other devices, including a keyboard, mouse, or electronicstylus (shown as input device 224 in FIG. 2). Similarly, an input/outputcontroller 222 may provide output to a display screen 225, a printer, orother type of output device.

As mentioned briefly above, a number of program modules and data filesmay be stored in the mass storage device 214 and RAM 209 of thecomputing apparatus 102, including an operating system 216 suitable forcontrolling the operation of a networked personal computer, such as theWINDOWS XP operating system from MICROSOFT CORPORATION of Redmond, Wash.The mass storage device 214 and RAM 209 may also store one or moreprogram modules. In particular, the mass storage device 214 and the RAM209 may store the EMA 104. The EMA 104 is operative to providefunctionality for the creation and configuration of electronic messagingaccounts utilizing server connection settings 232. The EMA 104 alsoincludes a Guessmart code module 229 for deriving or guessing serverconnection settings and/or an AutoDiscovery code module 230 fordiscovering or retrieving the server connection settings from anAutoDiscovery protocol connection settings file provided on an ISP orcustomized mail server. According to one embodiment of the invention,the EMA 104 and other application programs 227 comprise the OFFICE suiteof application programs from MICROSOFT CORPORATION including the WORD,EXCEL, and POWERPOINT application programs. The other applicationprograms 227 may also include a web browser application, such asINTERNET EXPLORER from MICROSOFT CORPORATION.

Specifically the Guessmart module 229 is operative to derive serverconnection settings by using an email address and password received bythe EMA 104. The Guessmart module 229 will take the domain portion ofthe e-mail address which is the portion after the @ sign and apply knownserver prefix names to the domain portion (DNS) of the email address.The Guessmart module 229 then attempts to connect to a server and loginwith the password. For example, an email address, such asfriendlyjon@bar.com, provides notice that a server supporting this emailaccount is in the bar.com domain. However, the Guessmart module 229 willderive or guess the prefix name of the server by trying a variety ofknown prefix names, such as “mail” or “pop”, and attempting to connectand login to a server.

Thus, the Guessmart module 229 will apply a common set of prefixes infront of email address DNS names and attempt to connect and login to aserver. This process attempts a variety of server name combinations,port combinations, and authentication combinations. Differentpermutations of the domain are used to attempt connections. Allpermutations calculated for server names are attempted for each trimmedlevel of the domain name (e.g. users.mail.bar.com, then mail.bar.com,then finally bar.com).

The Guessmart module 229 examines the combinations that succeed at loginand place them in a priority order. For example, the Guessmart module229 may give preference to the most secure settings. Thus, if a secureway to log in on a secure port is detected, the Guessmart module 229will store these secure settings as the server connection settings to beused for the account. Attempts to connect and login are made using postoffice protocol (POP), Internet message access protocol (IMAP), andsimple mail transfer protocol (SMTP). SMTP is a send only protocol. IMAPand POP are receive only protocols. Thus, the Guessmart module 229 mayderive one receive protocol and one send protocol which become thesettings that are used for the email account. According to anillustrative embodiment of the present invention, prefixes utilized toderive server connection settings are identified below in Table 1, inorder of attempt.

TABLE 1 Prefixes to Guess with (In Attempt Order)   Incoming POPPrefixes  pop  mail  sslmail  pop3  securepop  <blank> (No prefix)Incoming IMAP Prefixes  mail  imap  <blank> (No prefix) OutgoingPrefixes  smtp  smtpauth  mail  mailhost  securesmtp  <blank> (Noprefix)

Another embodiment of the present invention is a technology that veryspecifically defines exactly what the server connection settings arethat are necessary to connect to a server. The AutoDiscovery module 230enables the EMA 104 to automatically configure and connect to custom andISP servers. The AutoDiscovery module 230 searches for and finds anAutoDiscovery Service 117 a or 117 b on a front-end (FE) or back-end(BE) server.

The AutoDiscovery module 230 will use an email address to look upinformation needed to configure EMA 104. For example, given an emailname (like UserName@project.dept.div.company.tld), The AutoDiscoverymodule 230 generates a list of possible AutoDiscovery servers. TheAutoDiscovery module 230 then contacts the nameautodiscover.<domainname> request the information, for example theconnection settings. If that information is not found, the level ofdomains is reduced until one is found or the second level domain istried. If the information still isn't retrieved, then a public serviceis tried. For this example these servers are tried:

1. autodiscover.project.dept.div.company.tld

2. autodiscover.dept.div.company.tld

3. autodiscover.div.company.tld

4. autodiscover.company.tld

5. a public service that provides XML payload for configuration purposes

When the AutoDisovery Service 117 is found, the service 117 dynamicallybuilds a configuration template or file 112 a or 112 b in XML usingconfiguration data from the AD directory 114 a or 114 b. TheAutoDiscovery module 230 then downloads the configuration informationfrom the AutoDiscovery Service 117. Then the EMA 104 connects to a mailserver using the appropriate configuration settings.

Similarly, an ISP may implement AutoDiscovery. The XML connectionsettings in this embodiment will likely be statically stored on an ISPserver rather than dynamically built by a service thus, providingscalability, and easier implementation for an ISP. For example, a staticXML file having all the information needed to connect to a mail serverand in fact also provides information about a non-standard port neededto connect to an SMTP server provides exact settings that are not likelyto be guessed. The EMA 104 can then find and retrieve the serverconnection settings from a markup language file, for instance the staticXML file, and configure to connect to a server.

In various embodiments of the invention, the connection settings files112 a-112 n may be formatted according to extensible markup language(“XML”). As is understood by those skilled in the art, XML is a standardformat for communicating data. In the XML data format, a schema is usedto provide XML data with a set of grammatical and data type rulesgoverning the types and structure of data that may be communicated.Additional details regarding discovering server connection settings willbe described below with respect to FIGS. 3-13.

FIG. 3 is a computer screen display illustrating a user interface 300displaying a welcome screen for an electronic messaging applicationstartup wizard for guiding a user through a configuration processaccording to an illustrative embodiment of the present invention. Theuser interface 300 prompts the user to select a next button 302 tocontinue with the startup wizard guide.

FIG. 4 is a computer screen display illustrating a user interface 400displaying a data entry screen for adding a new email account to theelectronic messaging application according to an illustrative embodimentof the present invention. The user interface 400 prompts the user toenter a name in a name entry window 402, an email address in an emailaddress entry window 404, and a password in a password entry window 407.

FIG. 5 is a computer screen display illustrating the user interface 400displaying the data entry screen of FIG. 4 after receiving the dataaccording to an illustrative embodiment of the present invention. Theuser interface 400 prompts the user to retype the password in a passwordretype window 502. The user interface 400 also prompts the user tosubmit the data by selecting a next button 510.

FIG. 6 shows computer screen displays illustrating user interfaces 600and 602 respectively displaying the progress of the configurationprocess during an online search for server connection settings and acorresponding error screen display when a network connection isunavailable according to an illustrative embodiment of the presentinvention. The user interface 600 identifies the current status of theconfiguration process by displaying task indicator text 604, 605, and607. The indicator text 607 is in bold print with an arrow indicatingthat the task is currently in progress.

The user interface 602 displays an error screen with status indicatortext 608 and 610 indicating that a network connection is unavailable.The status indicator text 610 is in bold print with an ‘X’ indicatingthat the task was unsuccessful. An instruction text 612 is also providedby the user interface 602. The user interface 602 also prompts the userto continue by selecting the retry button 614.

FIG. 7 shows computer screen displays illustrating user interfaces 700and 702 respectively displaying the progress of the configurationprocess during the online search for server connection settings and acorresponding error screen display when there is a problem connecting toa server according to an illustrative embodiment of the presentinvention. The user interface 700 displays a checkmark 704 indicatingsuccessful completion of a task and task indicator text 707 to showpresent progress of the configuration process.

The user interface 702 displays an error screen with status indicatortext 710 and 712 indicating a problem connecting to a server. The statusindicator text 712 is in bold print with an ‘X’ indicating that the taskwas unsuccessful. An instruction text 714 is also provided by the userinterface 702 with a data change prompt for an email address window 715.The user interface 702 also prompts the user to continue by selectingthe retry button 717.

FIG. 8 shows computer screen displays illustrating user interfaces 800and 802 respectively displaying the progress of the configurationprocess during the online search for server connection settings and acorresponding error screen display when there is a problem logging on toa server utilizing a password according to an illustrative embodiment ofthe present invention. The user interface 800 displays a checkmark 804indicating successful completion of a task and task indicator text 807to show present progress of the configuration process.

The user interface 802 displays an error screen with status indicatortext 810 and 812 indicating a problem logging on to a server. The statusindicator text 812 is in bold print with an ‘X’ indicating that the taskwas unsuccessful. Instruction text 814 and 815 is also provided by theuser interface 802 with a data change prompt for an email address andpassword if necessary. The user interface 802 also prompts the user tocontinue by selecting the retry button 817.

FIG. 9 shows computer screen displays illustrating user interfaces 900and 902 respectively displaying the progress of the configurationprocess during the online search for server connection settings and acorresponding error screen display when there is a problem sending atest email to an email server according to an illustrative embodiment ofthe present invention. The user interface 900 displays a checkmark 904indicating successful completion of a task and task indicator text 907to show present progress of the configuration process.

The user interface 902 displays an error screen with status indicatortext 910 and 912 indicating a problem sending a test email. The statusindicator text 912 is in bold print with an ‘X’ indicating that the taskwas unsuccessful. Instruction text 914 is also provided by the userinterface 902. The user interface 902 also prompts the user to continueby selecting the retry button 917.

FIG. 10 is a computer screen display illustrating a user interface 1000displaying a successful configuration for an email account according toan illustrative embodiment of the present invention. The user interface1000 displays congratulatory text 1002 and a checkmark 1004 indicatingsuccessful completion of a task. The user interface 100 also displaysprogress indicator text 1005 and 1007 to show present progress of theconfiguration process. The user interface 1000 also prompts the user tofinish by selecting the finish button 1008.

FIGS. 11-13 are illustrative routines or operational flows performed inconfiguring electronic messaging applications according to illustrativeembodiments of the invention. When reading the discussion of theroutines presented herein, it should be appreciated that the logicaloperations of various embodiments of the present invention areimplemented (1) as a sequence of computer implemented acts or programmodules running on a computing system and/or (2) as interconnectedmachine logic circuits or circuit modules within the computing system.The implementation is a matter of choice dependent on the performancerequirements of the computing system implementing the invention.Accordingly, the logical operations illustrated in FIGS. 11-13, andmaking up the embodiments of the present invention described herein arereferred to variously as operations, structural devices, acts ormodules. It will be recognized by one skilled in the art that theseoperations, structural devices, acts and modules may be implemented insoftware, in firmware, in special purpose digital logic, and anycombination thereof without deviating from the spirit and scope of thepresent invention as recited within the claims set forth herein.

FIG. 11 is an operational flow diagram illustrating an operational flow1100 performed in configuring electronic messaging applicationsaccording to an illustrative embodiment of the present invention. Theoperational flow 1100 begins at operation 1110 where the EMA 104 promptsa user to enter his or her email address and password provided by theuser's ISP. Next at operation 1112, the EMA 104 receives the emailaddress and password for future reference.

The operational flow 1100 then asynchronously continues to operations1114 and 1117. At operation 1114, the EMA 104 derives or guesses serverconnection settings based on the email address and a successful loginwith the password. Additional details regarding operation 1114 will bedescribed below with respect to FIG. 12.

At operation 1117, the EMA 104 discovers or retrieves the serverconnection settings from an XML file dynamically built or staticallystored on an AutoDiscovery protocol server, such as the servers 107a-107 n of FIG. 1. Additional details regarding operation 1117 will bedescribed below with respect to FIG. 13.

Next the operational flow 1100 continues from operations 1114 and 1117to detect operation 1118. At detect operation 1118, a determination ismade as to whether the server connection settings were successfullydiscovered at operation 1117. When a determination is made that theserver connection settings were successfully discovered at operation1118, the operational flow continues to apply operation 1120 where thediscovered server connection settings are applied to the email account.The operational flow 1100 then continues to test operation 1124 wherethe email account is tested with the applied settings. This may includereceiving or sending a test email.

When a determination is made that the server connection settings werenot successfully discovered at detect operation 1118, the operationalflow 1100 continues from the detect operation 1118 to apply operation1112. At the apply operation 1112 the EMA 104 applies the most optimalderived server connection settings based on designated criteria to theemail account. The designated criteria may include degree of security, adesignated protocol, and a designated authentication process. Theoperational flow then continues from apply operation 1112 to the testoperation 1124 described above. The operational flow 1100 then returnscontrol to other operations at return operation 1127.

FIG. 12 is an operational flow diagram illustrating an operational flow1200 performed in deriving server connection settings according to anillustrative embodiment of the present invention. The operational flow1200 begins at operation 1202 where the EMA 204 applies a known prefixname, such as ‘pop’, to a domain portion of the email address received.

Next at operation 1204, the EMA 104 attempts to connect and login to amail server using the known prefix name, the domain portion of the emailaddress, and the password. Then at detect operation 1207, the EMA 104determines whether there has been a successful connection and login.When a successful connection and login does not occur, the operationalflow 1200 continues from detect operation 1207 to detect operation 1212.At detect operation 1212, the EMA 104 determines whether the knownprefixes, such as the prefix names listed in Table 1, have beenexhausted. When the known prefixes have been exhausted, the operationalflow 1200 returns control to operation 1118 described above with respectto FIG. 11.

When the know prefixes have not been exhausted, the operational flow1200 continues from detect operation 1212 to apply operation 1214 wherea next known prefix is applied in a designated order. The operationalflow 1200 then returns to operation 1204 described above. It should beappreciated that the EMA 104 may also lookup the server prefix name tonarrow the number of server name connection attempts.

When a successful connection and login does occur at detect operation1207, the operational flow 1200 continues from detect operation 1207 tooperation 1208. At detect operation 1208, the EMA 104 determines whetherthe current connection settings are more optimal than previously storedconnection settings. The most optimal settings may be determined bydesignated criteria such as security, authentication, and protocol. Whenthe current settings are not more optimal, the operational flowcontinues to operation 1212 described above. When the current connectionsettings are more optimal than the previously stored connectionsettings, the operational flow 1200 continues from operation 1208 tooperation 1210.

At operation 1210, the EMA 104 stores the current connection settings asthe most optimal settings based on the designated criteria. Theoperational flow 1200 then continues to operation 1212 described above.

FIG. 13 is an operational flow diagram illustrating a an operationalflow 1300 performed in discovering the server connection settingsaccording to an illustrative embodiment of the present invention. Theoperational flow 1300 begins at operation 1302 where a mail servercomputer establishes a designated server name, such asautodiscovery.bar.com, as a server prefix name and domain name to complywith AutoDiscovery protocol.

Next at operation 1304, the EMA 104 prompts a user for and receives anemail address. The operational flow 1300 then continues to operation1307 where the EMA 104 searches over a network for a server having thedesignated prefix name and requests server connection settings. Forinstance, each server is sent an HTTP Post command. The post data is anXML request for a certain type of information. The XML will containinformation that will help execute the request. For mail, it willinclude the email address, the protocols the client software supports,the web browser installed, the kind of proxy in use, and the types ofauthentication that can be used. The server can then return an XML filethat will provide the information needed for the client to configurelocal software to get the user to their destination.

In the case of email, an attempt is made to configure the email clientsoftware to connect to the mail server for fast access and offlinesupport. However if this configuration method is not possible becausethe protocol (MAPI, IMAP, for example) is not supported or the proxyblocks access (POP blocked by Web Proxy), then an address to web basedemail services may offered as an alternative.

At operation 1308, the EMA 104 determines whether the server with theserver settings has been found. If server connection settings have notbeen found, the operational flow 1300 continues from operation 1308 tooperation 1310 where the EMA 104 determines whether domain options havebeen exhausted.

If domain options have not been exhausted, the operational flow returnsto operation 1307 where the EMA 104 searches for the designated prefixname with a different domain option. If all domain options have beenexhausted at operation 1310, the operational flow 1300 returns controlto operation 1118 described above with respect to FIG. 11 at returnoperation 1320.

When at operation 1308, the EMA 104 determines that the connectionsettings have been found, the operational flow 1300 continues tooperation 1312, where the AutoDiscovery service 117 a receives therequest from the EMA 104 for server configuration settings. Next atoperation 1314, the AutoDiscovery service builds a server connectionsetting file in XML having the current connection settings. Then atoperation 1315, the AutoDiscovery service provides the server connectionsettings file for retrieval. It should be appreciated that an ISP servermay provide the XML file without building the file in response to aclient request.

Next, the operational flow 1300 continues to operation 1317 where theEMA 104 retrieves the connection settings from the server. Theoperational flow then continues to return operation 1320 describedabove.

As further illustration of sending a request for server connectionsettings and providing a response including the server connectionsettings, a schema for the request and the response for an illustrativeembodiment of the present invention is provided as follows:

Based on the foregoing, it should be appreciated that the variousembodiments of the invention include methods, systems, andcomputer-readable mediums for configuring electronic messagingapplications. The above specification, examples and data provide acomplete description of the manufacture and use of the composition ofthe invention. Since many embodiments of the invention can be madewithout departing from the spirit and scope of the invention, theinvention resides in the claims hereinafter appended.

We claim:
 1. A method for configuring an application to communicate witha server, the method comprising: receiving an electronic mail messageaddress and a password; attempting to retrieve server connectionsettings from the server while deriving the server connection settingsbased on the electronic mail message address, wherein deriving serverconnection settings further comprises: determining a domain portion ofthe electronic mail message address, wherein the domain portion includesa domain name and a top level domain; creating one or more server domaincombinations based upon at least the domain portion and one or moreknown server prefix names; and detecting a connection to the server whenat least one of the server domain combinations is successfully used withthe password; and in response to detecting the connection to the serverwith the server connection settings, providing the server connectionsettings.
 2. The method of claim 1, further comprising searching forconfigured known server prefix names based on the domain portion of theelectronic mail message address.
 3. The method of claim 1, whereinderiving the server connection settings further comprises: determiningthe server connection settings are more optimal than previously storedserver connection settings; and replacing the previously storedconnection settings with the server connection settings.
 4. The methodof claim 1, wherein the one or more known server prefix names compriseone or more of a post office protocol (POP) server prefix name, anInternet message access protocol (IMAP) server prefix name, and a simplemail transfer protocol (SMTP) server name prefix.
 5. The method of claim1, wherein detecting the connection to the server further comprisesreceiving an affirmative response greeting on a transmission controlprotocol (TCP) session.
 6. The method of claim 5, further comprising:attempting to establish a connection to the server on a secure port anda non-secure port; and storing the secure port as a more optimal serverconnection setting when the affirmative response greeting is returned onthe secure port.
 7. The method of claim 1, further comprising evaluatingone or more permutations of the server domain combinations to determinethe server connection settings.
 8. The method of claim 7, wherein theevaluating comprises: attempting to establish a connection using the oneor more permutations of the server domain combinations and the password;and detecting a connection to the server when at least one permutationof the server domain combination is successfully used with the password.9. The method of claim 8, wherein the evaluating further comprises:identifying the at least one successful permutation of the server domaincombination; and storing the at least one successful permutation of theserver domain combination as the server connection settings.
 10. Asystem comprising: at least one processor; and memory coupled to the atleast one processor, the memory comprising instructions executable bythe processor for: receiving an electronic mail message address and apassword; attempting to retrieve server connection settings from theserver while deriving the server connection settings based on theelectronic mail message address, wherein deriving server connectionsettings further comprises: determining a domain portion of theelectronic mail message address, wherein the domain portion includes adomain name and a top level domain; creating one or more server domaincombinations based upon at least the domain portion and one or moreknown server prefix names; and detecting a connection to the server whenat least one of the server domain combinations is successfully used withthe password; and in response to detecting the connection to the serverwith the server connection settings, providing the server connectionsettings.
 11. The system of claim 10, further comprising instructionsexecutable by the processor for searching for configured known serverprefix names based on the domain portion of the electronic mail messageaddress.
 12. The system of claim 10, wherein deriving the serverconnection settings further comprises: determining the server connectionsettings are more optimal than previously stored server connectionsettings; and replacing the previously stored connection settings withthe server connection settings.
 13. The system of claim 10, wherein theone or more known server prefix names comprise one or more of a postoffice protocol (POP) server prefix name, an Internet message accessprotocol (IMAP) server prefix name, and a simple mail transfer protocol(SMTP) server name prefix.
 14. The system of claim 10, wherein detectingthe connection to the server further comprises receiving an affirmativeresponse greeting on a transmission control protocol (TCP) session. 15.The system of claim 10, further comprising instructions executable bythe processor for: attempting to establish a connection to the server ona secure port and a non-secure port; and storing the secure port as amore optimal server connection setting when the affirmative responsegreeting is returned on the secure port.
 16. The system of claim 10,further comprising instructions executable by the processor forevaluating one or more permutations of the server domain combinations todetermine the server connection settings.
 17. The system of claim 16,wherein the evaluating comprises: attempting to establish a connectionusing the one or more permutations of the server domain combinations andthe password; and detecting a connection to the server when at least onepermutation of the server domain combination is successfully used withthe password.
 18. The system of claim 17, wherein the evaluating furthercomprises: identifying the at least one successful permutation of theserver domain combination; and storing the at least one successfulpermutation of the server domain combination as the server connectionsettings.
 19. A computer storage device encoding computer readableinstructions that, when executed by at least one processor, perform amethod comprising: receiving an electronic mail message address and apassword; attempting to retrieve server connection settings from theserver while deriving the server connection settings based on theelectronic mail message address, wherein deriving server connectionsettings further comprises: determining a domain portion of theelectronic mail message address, wherein the domain portion includes adomain name and a top level domain; creating one or more server domaincombinations based upon at least the domain portion and one or moreknown server prefix names; and detecting a connection to the server whenat least one of the server domain combinations is successfully used withthe password; and in response to detecting the connection to the serverwith the server connection settings, providing the server connectionsettings.
 20. The computer storage device of claim 19, wherein derivingthe server connection settings further comprises: determining the serverconnection settings are more optimal than previously stored serverconnection settings; and replacing the previously stored connectionsettings with the server connection settings.